#!/bin/bash
VERSION=0.1

_usage(){
	echo -e "uso: $0 {[-h|--help|?] -i dir -l dir}";
}

_version(){
	echo -e "\nversão: $VERSION\n"
}

_help(){
cat << fim
Este scritp executa um ls de teste com as opções -l ou -i.
fim
_usage;
}

_menu(){

   PARAMET=($@);
   # Índice verificado
   INDICE=0
   # Indica se devo parar a verificação
   FIMCADEIA=false
   # Alguma opção que pode ser ativada/desativada (você pode ter quantas quiser!)
   DEBUG=false
   # A quantidade de parâmetros que devo verificar (poderia pegar o tamanho do vetor, mas assim também funciona)
   QtdPar=$#
   # Enquanto houver parâmetros para verificar
   # e não estiver
   while ((INDICE<QtdPar)) && ( ! $FIMCADEIA )
   do
	case ${PARAMET[$INDICE]} in
        -h|--help|?)
            _help
            FIMCADEIA=true
        ;;
         # Parâmetro que finaliza a verificação dos parâmetros
        -v|--version)
            _version
            FIMCADEIA=true
        ;;
         # Parâmetro que não necessita de argumento
        --human-readable) DEBUG=true
        ;;
	-*)
	while getopts i:l: opt
		do
		  case $opt in
			i) ls -i $OPTARG;
			   FIMCADEIA=true;;
			l) ls -l $OPTARG;
			   FIMCADEIA=true;;
			*) echo -e "$opt - opção invalida\n";;
		  esac
		done
	;;
        *) echo "Parâmetro invalido: ${PARAMET[((INDICE))]} no índice $INDICE"
            FIMCADEIA=true
        ;;
      esac
      ((INDICE++))
   done
}

if [ $# -eq 0 ];then
	_usage;
else
	_menu $@;
fi
